<template>
  <div class="person">
    <h2>当前求和为：{{ sum }}</h2>
    <button @click="add">点我加1</button>
  </div>
</template>

<script setup lang="ts" name="Person">
import {
  onBeforeMount,
  onBeforeUnmount,
  onBeforeUpdate,
  onMounted,
  onUnmounted,
  onUpdated,
  ref,
} from "vue";
// 数据
let sum = ref(0);
// 方法
function add() {
  sum.value += 1;
}
// 创建
console.log("创建");

// 挂载前: Vue3在挂载前调用onBeforeMount中指定的回调函数
onBeforeMount(() => {
  console.log("挂载前");
});
// 挂载完毕：Vue3在挂载完毕调用onMounted中指定的回调函数
onMounted(() => {
  console.log("子---挂载完毕");
});
// 更新前：Vue3在更新前调用onBeforeUpdate中指定的回调函数
onBeforeUpdate(() => {
  console.log("更新前");
  // debugger;
});
// 更新完毕：Vue3在更新完毕调用onUpdated中指定的回调函数
onUpdated(() => {
  console.log("更新完毕");
});
// 卸载前：Vue3在卸载前调用onBeforeUnmount中指定的回调函数
onBeforeUnmount(() => {
  console.log("卸载前");
});
// 卸载完毕：Vue3在卸载完毕用onUnmount中指定的回调函数
onUnmounted(() => {
  console.log("卸载完毕");
});
</script>

<style scoped>
.person {
  background-color: skyblue;
  box-shadow: 0 0 10px;
  border-radius: 10px;
  padding: 20px;
}
button {
  margin: 0 5px;
}
li {
  font-size: 20px;
}
</style>
